ASP.NET Core অ্যাপ্লিকেশন তৈরি করার সময় MVC (Model-View-Controller) আর্কিটেকচার একটি খুবই জনপ্রিয় প্যাটার্ন। এটি অ্যাপ্লিকেশনের লজিক, ইউজার ইন্টারফেস এবং ডেটা ম্যানিপুলেশনকে পৃথক করে, যার ফলে কোডের রক্ষণাবেক্ষণ সহজ হয় এবং অ্যাপ্লিকেশনের স্কেলেবিলিটি বৃদ্ধি পায়। MVC প্যাটার্নের মূল তিনটি উপাদান হলো Model, View, এবং Controller। প্রতিটির ভুমিকা আলাদা এবং এটি অ্যাপ্লিকেশনের কার্যকারিতাকে সুসংগঠিত করে।
Model হল অ্যাপ্লিকেশনের ডেটা, লজিক এবং ব্যবসায়িক নিয়ম (business rules) পরিচালনা করার জন্য দায়ী। Model সাধারণত ডেটাবেসের সঙ্গে যোগাযোগ করে এবং তথ্য সংগ্রহ, আপডেট বা মুছে ফেলতে সাহায্য করে।
User
, Product
, Order
ইত্যাদি।public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
এখানে Product
একটি Model যা ডেটাবেসে একটি প্রোডাক্টের তথ্য ধারণ করবে।
View হল ইউজার ইন্টারফেসের অংশ, যা ইউজারের সাথে অ্যাপ্লিকেশনের ইন্টারঅ্যাকশন প্রদান করে। View মূলত HTML, CSS, এবং JavaScript এর মাধ্যমে ডেটা প্রেজেন্ট করে। View শুধুমাত্র ডিসপ্লে বা দেখানোর জন্য দায়ী এবং এর মধ্যে লজিকের কাজ খুবই সীমিত থাকে।
Product
এর নাম, দাম ইত্যাদি)।@model Product
<div>
<h1>@Model.Name</h1>
<p>Price: $@Model.Price</p>
</div>
এখানে Product
Model এর ডেটা View-এ প্রদর্শিত হবে, যেমন প্রোডাক্টের নাম এবং দাম।
Controller অ্যাপ্লিকেশনের ইনপুট গ্রহণ করে এবং Model এবং View-এর মধ্যে যোগাযোগ স্থাপন করে। Controller ইউজারের রিকোয়েস্টকে প্রোসেস করে, প্রয়োজনীয় ডেটা মডেল থেকে নিয়ে তা ভিউতে প্রেরণ করে। Controller অ্যাপ্লিকেশন লজিকের নিয়ন্ত্রণকারী।
public class ProductController : Controller
{
private readonly IProductService _productService;
public ProductController(IProductService productService)
{
_productService = productService;
}
public IActionResult Index()
{
var products = _productService.GetAllProducts();
return View(products);
}
}
এখানে ProductController
ইউজারের রিকোয়েস্ট গ্রহণ করে এবং Product
ডেটা Index
View-এ পাঠায়।
এই তিনটি উপাদান মিলে অ্যাপ্লিকেশনের কার্যকারিতা এবং রক্ষণাবেক্ষণ সহজ করে, কারণ তারা প্রতিটি স্তরের দায়িত্ব আলাদা করে দেয়, যা অ্যাপ্লিকেশনটিকে আরো স্কেলেবল এবং মডুলার করে তোলে।
common.read_more